Embodiments of the invention relate to the field of data storage. In particular, Embodiments of the invention enable a storage system's cache, built with flash memory, to have direct block access to the flash devices such that the physical block addresses of the flash devices are presented to the storage system's cache layer.
A cache is a high-speed memory device between a processor and a larger but slower device, such as main memory or storage. Storage caches temporarily store data that is accessed by host systems from a storage system. A cache, during write operations, typically holds write data before it is destaged to primary storage. A cache, during read operations, caches read data after an initial access to data from the storage system's storage. Subsequent accesses to the same data will be made to the storage cache. A storage cache allows read data in a storage system to be accessed in a shorter amount of time by a system by having often accessed data on faster storage devices.
Flash memory has a potential for significantly improving storage system performance, however, flash memory is significantly more expensive than permanent storage (HDD) at the same storage capacity. Therefore, it is impractical to use flash memory to replace hard disks in a large fraction of storage systems. Furthermore, using flash memory to cache storage significantly increases costs of storage systems. Flash memory does have significant benefits in a storage system design using a small amount of flash memory as a storage cache for the primary storage.
Current flash storage units (such as Solid State Disks, or SSDs) use virtual block access methods that decouple the logical addresses seen by the system from the physical addresses on the internal flash devices. This allows the flash storage unit to perform functions such as wear management and write ordering. Using virtual block access enables making the flash storage unit function on the storage bus like a disk drive.